package gob.osinerg.emergencia.service;

import gob.osinerg.emergencia.bean.Formulario;
import gob.osinerg.emergencia.bean.FormularioEmergDetalle;
import gob.osinerg.emergencia.bean.FormularioEmergencia;
import gob.osinerg.emergencia.bean.MailBean;
import gob.osinerg.emergencia.dao.FormularioEmergenciaDAO;

import java.util.List;
import java.util.Map;

public class FormularioEmergenciaServiceImpl implements FormularioEmergenciaService {
	
	private FormularioEmergenciaDAO dao;
	
	public List findEmergencia(FormularioEmergencia bean) throws Exception {
		
		return getDao().findEmergencia(bean);
	}

	public String getNumeroMesaParte(Long uniopeId, Long unifisId)
			throws Exception {
		// TODO Auto-generated method stub
		return getDao().getNumeroMesaParte(uniopeId,unifisId);
	}
	
	
	
	public void setDao(FormularioEmergenciaDAO dao) {
		this.dao = dao;
	}
	public FormularioEmergenciaDAO getDao() {
		return dao;
	}

	public void saveMesaParteArchivos(Long id, String nroMesaParte)
			throws Exception {
		getDao().saveMesaParteArchivos(id,nroMesaParte);
		
	}

	public boolean getExisteFormularioFinal(FormularioEmergencia bean)
			throws Exception {
		
		return getDao().getExisteFormularioFinal(bean);
	}

	public List getCategorias(String idFormulario) throws Exception {
		return getDao().getCategorias(idFormulario);
	}

	public List getOpciones(String idFormulario, String idCategoria,
			String idSeccion) throws Exception {
		return getDao().getOpciones(idFormulario, idCategoria, idSeccion);
	}

	public List getSecciones(String idFormulario, String idCategoria)
			throws Exception {
		return getDao().getSecciones(idFormulario, idCategoria);
	}

	public String getNumeroEmergencia(Long unifisId) throws Exception {
		return getDao().getNumeroEmergencia(unifisId);
	}

	public void grabarInformeRespuestasLista(FormularioEmergencia form, List lista)	throws Exception {
		
		for(int i=0;i<lista.size();i++){
			FormularioEmergDetalle bean = (FormularioEmergDetalle)lista.get(i);
			bean.setFrmulrioEmgId(form.getId());
			getDao().grabarInformeRespuestas(bean);

		}
		
	}

	public Long getUniFisIdParaUsuario(String codigo) throws Exception {

		return getDao().getUniFisIdParaUsuario(codigo);
	}

	public Map getCamposReporte(Long id) throws Exception {
		
		return getDao().getCamposReporte(id);
	}

	public List getCategoriaConsulta(Long id) throws Exception {
		return getDao().getCategoriaConsulta(id);
	}

	public List getFormularioRespuestas(Long id, String seccion)
			throws Exception {
		return getDao().getFormularioRespuestas(id,seccion);
	}

	public List getSeccionConsulta(Long id, String categoria) throws Exception {
		return getDao().getSeccionConsulta(id,categoria);
	}

	public void procesarMail(MailBean mailBean) throws Exception {
		getDao().procesarMail(mailBean);
		
		
	}

	public List getUsuariosParaEnvioMail(Formulario formulario)
			throws Exception {
		
		return getDao().getUsuariosParaEnvioMail(formulario);
	}

	public String getZonaFiscaliazable(Long uniopeId, String uniFisId)
			throws Exception {
		return getDao().getZonaFiscaliazable(uniopeId,uniFisId);
	}

	public List getMailSupervisor(String zonaFisId) throws Exception {
		return getDao().getMailSupervisor(zonaFisId);
	}

	public List getBusquedaTipoEmergencia(String dominio, String abreviation)
			throws Exception {
		
		return getDao().getBusquedaTipoEmergencia(dominio,abreviation);
	}

	public List getListaGeneral(Long id) throws Exception {

		return getDao().getListaGeneral(id);
	}

	public List getListaRespuestasGeneral(Long id) throws Exception {

		return getDao().getListaRespuestasGeneral(id);
	}
}
